package com.rykj.energy.task.api.service;

import com.rykj.energy.common.dto.CameraDto;
import com.rykj.energy.common.dto.TaskCameraRelationDto;
import com.rykj.energy.database.pojo.TaskCameraRelation;
import com.rykj.energy.database.pojo.TaskInfo;
import com.rykj.energy.database.pojo.vo.TaskInfoVo;

import java.util.List;

public interface ITaskService {

    /**
     * 基于算法类型的角度批量启停任务
     * 找出删除、新增、更新的任务分别处理
     * @param taskInfo
     * @throws Exception
     */
    public void saveBatchTaskForTask(TaskInfoVo taskInfo) throws Exception;

    /**
     * 基于单个摄像头的角度批量启停任务
     * @param taskCameraRelations 摄像头上的需要开启的任务信息
     * @throws Exception
     */
    public void saveBatchTaskForCamera(int cameraId, List<TaskCameraRelationDto> taskCameraRelations) throws Exception;

    /**
     * 批量启动多摄像头的启停任务
     * @param taskInfos 摄像头上的需要开启的任务信息
     * @throws Exception
     */
    public void saveBatchTaskForCamera(List<CameraDto> taskInfos) throws Exception;

    TaskInfoVo getTaskCameraByCode(String code) throws Exception;

    List<TaskCameraRelationDto> getTaskCameraByCameraId(String cameraId, String tasksStatus);
}
